import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

/* 布局 */
import Layout from '@/layout'

/**
 * 注意：当路由子项的 children.length >= 1 时，子菜单才会出现
 * 详情查看：https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
 *
 * hidden: true                   如果设置为 true，则项不会显示在侧边栏（默认为 false）
 * alwaysShow: true               如果设置为 true，则始终显示根菜单
 *                                如果未设置 alwaysShow，当项有多个子路由时，
 *                                它将变为嵌套模式，否则不会显示根菜单
 * redirect: noRedirect           如果设置为 noRedirect，则在面包屑导航中不会重定向
 * name:'router-name'             用于 <keep-alive> 的名称（必须设置!!!）
 * meta : {
 roles: ['admin','editor']    控制页面角色（可以设置多个角色）
 title: 'title'               在侧边栏和面包屑中显示的名称（建议设置）
 icon: 'svg-name'/'el-icon-x' 在侧边栏中显示的图标
 breadcrumb: false            如果设置为 false，则项在面包屑导航中被隐藏（默认为 true）
 activeMenu: '/example/list' 如果设置了路径，侧边栏将高亮您设置的路径
 }
 */

/**
 * constantRoutes
 * 一个没有权限要求的基础页面
 * 所有角色都可以访问
 */
export const constantRoutes = [
  // ... 此处省略了具体的路由配置
]

const createRouter = () => new Router({
  // mode: 'history', // 需要服务端支持
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

const router = createRouter()

// 详情查看：https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
  const newRouter = createRouter()
  router.matcher = newRouter.matcher // 重置路由
}

export default router
